1. Field of the Invention
One embodiment of the invention relates to a decode control technology for performing a suitable decode on a video stream, which is applied to, for example, a personal computer including a TV function capable of recording and reproducing digital broadcast program data which is broadcast with a television broadcast signal.
2. Description of the Related Art
Recently, battery-drivable and easy-to-carry notebook type personal computers are in wide use. These types of computers have been subjected to reduction in thickness and weight, while simultaneously making improvements in functionality. As a result, such computers incorporating a TV function for showing digital television broadcast programs have appeared. Therefore, if a user carries such type of computer while traveling or away from home, a digital television broadcast program can be enjoyed.
Furthermore, with the improvement in the wireless communication environment, it has become easy to be connected to the Internet while a user is outside or traveling. It has become thus possible to receive digital television broadcast program data from a server connected via the Internet and watch the received program outside the home or office.
Digital broadcast program data is a video stream that is compression-encoded with, for example, a method compliant with an MPEG (Moving Picture Experts Group) 2 standard. During a transfer of such a compression-encoded video stream, a part thereof may be lost or an error may occur therein. In order to reproduce such a video stream in which an error occurs or a part thereof is missing, various recovery mechanisms have been proposed so far (e.g., Jpn. Pat. Appln. KOKAI publication No. 9-154135).
Generally, a computer is equipped with a graphics accelerator (hereinafter referred to as accelerator), which draws an image to be displayed by various application programs on behalf of a CPU. Furthermore, recently, accelerators including a function for executing a part of a process for decoding a compression-encoded video stream have begun to appear. Among those computers equipped with a TV function, quite a lot of them realize such TV function with software. In that case, a decoding process of a video stream needs to be executed by one module in the aforementioned software, which is operating on a CPU. A load on the CPU is expected to be greatly reduced by letting a part of the decoding process be carried out by the accelerator.
A video stream that is compression-encoded with a method compliant with the MPEG2 standard has a hierarchical structure comprising six layers: a sequence layer, a GOP (Group Of Picture) layer, a picture layer, a slice layer, a macroblock layer, and a block layer. The picture layer is a layer to be provided in pairs with respective images in the video. The slice layer located beneath the picture layer is an aggregate of partial image data (slice), which is produced by dividing each of the images in the horizontal direction. Also, the macroblock is a layer produced by dividing each of the images in a matrix form. That is to say, a slice is equal to macroblocks arranged in a row direction. A representative accelerator including a function for executing a part of the process for decoding a compression-encoded video stream is one that executes a decoding process by receiving data in slice units or macroblock units.
However, the above-mentioned accelerator, which performs a decoding process by receiving data in slice units or macroblock units, is unable to execute such a recovery process using peripheral data as is executed by an error processing apparatus disclosed in the above-mentioned Jpn. Pat. Appln. KOKAI publication No. 9-154135. Therefore, software, which tries to make the aforementioned accelerator execute the decoding process in slice units or macroblock units, is required to be provided with the following mechanism: the mechanism which supplements data for enabling the accelerator to successfully complete the decoding process and supplying the accelerator with the supplemented data, even when a part of the compression-encoded video stream is lost or an error occurs therein while being transferred.